package pe.com.bbva.pct.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import pe.com.bbva.pct.util.ConstantesGenerales;

@Entity
@Table(name="TMR006_REL_FUE_ENT", schema = ConstantesGenerales.DATABASE)
public class RelacionFuenteEntidad implements Serializable {



	private static final long serialVersionUID = 6437543278308191282L;
	private Long idRelacionFuenteEntidad;
	private ReglaFuente idReglaFuente;
	private String campoFuente;
	private String campoEntidad;
	private Valor idEstado;
	private DetalleFuente idDetalleFuente;
	
	@Id
	@SequenceGenerator(name="SQ_ID_REL_FUE_ENT", sequenceName=ConstantesGenerales.DATABASE+".SQ_ID_REL_FUE_ENT", allocationSize = 1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SQ_ID_REL_FUE_ENT")
	@Column(name="CD_ID_RELACION", unique=true, nullable=false, precision=36)
	public Long getIdRelacionFuenteEntidad() {
		return idRelacionFuenteEntidad;
	}
	public void setIdRelacionFuenteEntidad(Long idRelacionFuenteEntidad) {
		this.idRelacionFuenteEntidad = idRelacionFuenteEntidad;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_REGLA_FUENT",  nullable=true)
	public ReglaFuente getIdReglaFuente() {
		return idReglaFuente;
	}
	public void setIdReglaFuente(ReglaFuente idReglaFuente) {
		this.idReglaFuente = idReglaFuente;
	}
	
	@Column(name="NB_CAMPO_FUENTE", length=50,  nullable=true)
	public String getCampoFuente() {
		return campoFuente;
	}
	public void setCampoFuente(String campoFuente) {
		this.campoFuente = campoFuente;
	}
	
	@Column(name="NB_CAMPO_ENTIDAD", length=50,  nullable=true)
	public String getCampoEntidad() {
		return campoEntidad;
	}
	public void setCampoEntidad(String campoEntidad) {
		this.campoEntidad = campoEntidad;
	}
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_ESTADO",  nullable=true)
	public Valor getIdEstado() {
		return idEstado;
	}
	public void setIdEstado(Valor idEstado) {
		this.idEstado = idEstado;
	}
	
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "CD_ID_DET_FUENTE",  nullable=true)
	public DetalleFuente getIdDetalleFuente() {
		return idDetalleFuente;
	}
	public void setIdDetalleFuente(DetalleFuente idDetalleFuente) {
		this.idDetalleFuente = idDetalleFuente;
	}
	
}
